//Occurance set holds a set of occurances
//of sites for a given word(kept track of in the KeyWordIndex)

#ifndef OCCURENCESET_H
#define OCCURENCESET_H

#include "Occurrence.h"
#include "BST.h"
#include "LinkedList.h"


class OccurrenceSet{

      private:
            BST<Occurrence> sites;		//Each site the word occurs in

      public:
            OccurrenceSet();
            OccurrenceSet(const OccurrenceSet &other);
            //OccurrenceSet& operator = (cont OccurrenceSet)
            ~OccurrenceSet();

            void add(Page &site);		//Increments the given word is found;
            bool contains(Page &site);	//Checks a Page is in the set
            Occurrence* get(Page &site);  //Returns the occurance given a specific site
            LinkedList<Occurrence>* toLinkedList();
	     friend ostream &operator<<(ostream &stream, OccurrenceSet *set);
}; 

#endif
